Social group suggestions within a social network

ABSTRACT

In one example, a method includes receiving, by a first computing device and from a second computing device, an image comprising an object. A user may be associated with a social networking service and the second computing device. The method further includes selecting a social group associated with the user in the social networking service. The selection may be based at least in part on one or more characteristics associated with the object. The method also includes sending, by the first computing device to the second computing device, an indication of the social group selected by the first computing device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.61/650,348, filed May 22, 2012, the entire content of which isincorporated herein in its entirety.

BACKGROUND

Computers and mobile devices, such as cellular phones and personaldigital assistants, have made keeping in touch with acquaintances via asocial network possible. In one example, web-based “social network”applications can enable a user to find other users' accounts andvoluntarily become acquaintances. Users can share information with theiracquaintances, such as messages and photos, allowing acquaintances tostay informed of their lives. The shared information is a tool formaintaining and strengthening social bonds.

Recently, creating special interest groups or sub-group(s) within asocial network has become another popular form of social connection insocial network and media sharing websites. The phrase “group” mayinclude a social sub-community, or social sub-network, where memberswithin a group share a characteristic, for example a common interest,value, ethnic or social background, or kinship tie. In this disclosure,the group is characterized by one or more commonly sharedcharacteristics associated with its members. Creating groups within theuser's social network is an organizational tool, especially useful whena user has many acquaintances in its social network, and a time saverfor communicating with certain individuals.

SUMMARY

In one example, this disclosure is directed to a method includingreceiving, by a first computing device and from a second computingdevice, an image. The user may be associated with a social networkingservice and the second computing device. The method may also includeidentifying, by the first computing device, an object included in theimage. The method may also include selecting, by the first computingdevice, a social group associated with the user in the social networkingservice, the selecting being based at least in part on one or morecharacteristics associated with the object. The method may furtherinclude sending, by the first computing device to the second computingdevice, an indication of the social groups selected by the firstcomputing devices.

In another example, the disclosure is directed to a computer-readablestorage medium encoded with instructions that, when executed, cause oneor more processors of a computing device to perform operations,including receiving, by a first computing device and from a secondcomputing device, a file, wherein a user is associated with a socialnetworking service and the second computing device. The operations mayfurther include identifying, by the first computing device, an objectassociated with the file. The computer-readable storage medium mayinclude selecting, by the first computing device, a social groupassociated with the user in the social networking service, the selectingbeing based at least in part on one or more characteristics associatedwith the object. The computer-readable storage medium may also includesending, by the first computing device to the second computing device,an indication of the selected social group.

In another example, the disclosure is directed to a computing device mayinclude one or more processors. The computing device may also include atleast one or more modules operable by the one or more processors to sendan image to a remote computing device, wherein an object is included inthe image. The at least one or more modules may receive an indication ofa social group associated with a user, wherein the user is associatedwith the computing device and a social networking service, the indicatedsocial group being selected by the remote server based at least in parton one or more characteristics associated with the object. The at leastone or more modules may further be operable by the one or moreprocessors to receive an indication of user input to select the socialgroup and send an indication of the social group selected by the userinput to the remote computing device.

The details of one or more examples of the disclosure are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages will be apparent from the description anddrawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example of a computingdevice, such as a client device, coupled to a server device thatprovides a computer implemented social networking service, in accordancewith one or more aspects of the present disclosure.

FIG. 2 is a block diagram illustrating an example of a server devicethat provides a computer implemented social networking service shown inFIG. 1, in accordance with one or more aspects of the presentdisclosure.

FIG. 3 is a flowchart illustrating an example of a server deviceselecting social groups based on identified characteristics associatedwith object in an image received by a client device, which is acomputing device, in accordance with one or more aspects of the presentdisclosure.

FIG. 4 is a flowchart illustrating an example of a server devicesuggesting social groups based on the user's social group selection, inaccordance with one or more aspects of the present disclosure.

FIG. 5 is a flowchart illustrating an example of the server devicegenerating an indication of the social groups, selected by the serverdevice as suggestions, in accordance with one or more aspects of thepresent disclosure.

DETAILED DESCRIPTION

In general, this disclosure is directed to techniques that may enable auser associated with a computing device (such as a smart phone, tablet,computer, or other commonly known computing devices) to quickly andeasily select social groups with which to share a photo after the photois taken. The computing device may include, for example, server andclient devices. Social groups may be categories of a user's socialnetwork to which a user can assign their social networking contacts andbetter control the distribution and visibility of social networkingposts.

Techniques of this disclosure for photo sharing with a social group mayinclude determining when a user takes a photo and prompting the user toselect suggested social groups based on information associated withobjects in the photo. If the user does select one or more social groupsto share the photo with, the user may also input data about the image orthe graphical objects found within the image. The input data and anyselected social groups may then be sent back to the server. The servermay associate the photo with the selected social groups and the inputdata. Allowing the user to select social groups to share an image withclient device allows the user more control of their social networkingcommunication and also prevents access to images by each user in thesocial networking service that is not associated with the social group.

For example, after taking a photo with a mobile computing device, themobile computing device may be configured to send the photo to a serverimplementing techniques of the present disclosure. The server may applyimage recognition techniques to the photo to identify objects in theimage. Using the image recognition techniques, the server may furtheridentify characteristics associated with one or more graphical objects.In some examples, a characteristic may indicate a name of a graphicalobject in an image. The server may then compare the characteristics ofthe graphical objects with metadata of social groups (e.g., a socialgroup name) associated with the user to generate a confidence value. Theconfidence value may indicate the likelihood that the photo may beassociated with one or more of the social groups. Using a set ofgenerated confidence values, the server may create a list of suggestedsocial groups. The server may send identifiers that identify thesuggested social groups to the mobile computing device. For example, ifthe recognized graphical object is a soccer ball and the user has asocial group named “Soccer Fans,” then the “Soccer Fans” social groupwill be a suggested social group to share the photo with.

When the identifiers of the suggested social groups are received by themobile computing device, the user may be prompted to select thesuggested social groups. If the user selects one or more social groupsto associate with the photo, then the user may be prompted to inputdescriptive information about the image or the graphical objects foundin the image (e.g. names, dates, times, titles, location, comments,etc.). The input data and any selected social groups may then be sentback to the server. The server may then associate the image with theselected social groups and the input data.

In some examples, the mobile computing device may also apply imagerecognition techniques locally to the photo to identify graphicalobjects and their related data, such as characteristics, metadata andconfidence values. The mobile computing device may send the related datato the server to be used to generate the list of suggested socialgroups. The server will then use techniques, for example parsing andstring matching, to generate a list of suggested social groups withinthe user's social network to share the image with. The list may beautomatically displayed on a graphical user interface (GUI) of theuser's mobile computing device. The term “image” as used herein is abroad term encompassing as its plain and ordinary meaning, including butnot limited to files, such as one or more visual representations, suchas a photo or video, or could encompass acoustic or sound recordings,digital recordings, or documents, or a combination thereof. A file maybe adapted to any data that a client device or server device are capableof capturing, receiving or storing.

FIG. 1 is a schematic illustrating an example of a computing device,such as a client device 10, coupled to a server device 30 that providesa computer implemented social networking service, in accordance with oneor more aspects of the present disclosure. As shown in FIG. 1, clientdevice 10 may be associated with a user 2, and includes a socialnetworking application 12, a social networking module 14, a cameraapplication 16, a camera module 18, an image capture device 20, an inputdevice 22, and an output device 24.

In one example, user 2 may provide a user input to camera application 16that causes image capture device 20 to capture an image. Cameraapplication 16 stores the image at client device 10 using a cameramodule 18. Camera module 18 may associate the image with descriptiveinformation such as a number that uniquely identifies the image, thelocation where the image was captured using global positioningtechniques, user defined tags, or any other data that is descriptive ofthe captured image. Client device 10 may later send the descriptiveinformation to server device 30, which may associate the descriptiveinformation with the image in the social networking service. Thedescriptive information may be associated with objects in the image ascharacteristics that server device 30 may later use to identify socialgroups having characteristics that match the descriptive information.

Client device 10, in some examples, contains a client side library thatis integrated with camera application 16 that performs image recognitionlocally at client device 10. Alternatively, functionality of the clientside library may be implemented at server device 30 to perform imagerecognition. In the current example of FIG. 1, social networkapplication 12 sends the image to server device 30. Social networkapplication 12 may automatically send the image in some examples, whilein other examples social network application 12 may request a user inputfrom user 2 to cause social network application 12 to send the image. Insome examples, client device 10 may further send image characteristics,such as a number that uniquely identifies the image, the location wherethe image was captured using global positioning techniques, user-definedtags, or any other data that is descriptive of the captured image.

Upon receiving the image, server device 30 may perform one or more knownimage recognition techniques to identify objects in the image. Forinstance image recognition module 32 may generate one or more imagesignatures of digital image data corresponding to objects included inthe image. More specifically, image recognition module 32 may select aportion of image data that represents an object from the image andgenerate a signature that represents the object. In the example of FIG.1, image recognition module 32 may generate a signature of an object ofa tree that is included in the image.

Image recognition module 32 of server device 30 may then compare thegenerated signature of the object to a group of predefined objectsignatures included in object data 44. Server device 30 may generate aconfidence value that indicates a probability that the object signatureof the image matches one or more object signatures included in objectdata 44 of image object store 40. When the probability of a matchbetween the object signature of the image and an object signature ofobject data 44 is greater than a predefined value, image recognitionmodule 32 selects the matching object signature of object data 44. Insome examples, a confidence value may be between 0 and 1.0. When theconfidence value is, for example, 0.75 and the predefined value is setat 0.70, then the probability is greater than the predefined value. Dueto the greater probability confidence value of 0.75, image module 32selects the matching object signature.

Image recognition module 32 may then determine characteristicsassociated with the matching object signatures of the objects identifiedin the image. The characteristics may include, an object identifier,object name, keywords associated with the matching object signature,etc. For instance, each matching object signature may be associated withan object identifier (e.g., “tree”). Image recognition module 32 thensends the characteristics associated with the selected objects tomatching module 36 for continuing the selection of social groupsuggestions.

Social group module 34 may determine social groups of user 2 thatcorrespond to the object characteristics received from image recognitionmodule 32. For instance, when social network application 14 sends theimage, social network application also sends user credentials associatedwith user 2's account in a social networking service provided by serverdevice 30. Social group module 34 initiates matching by accessing a listof social groups associated with user 2 included in social group data42. In some examples, social group data 42 may be stored in the socialgroup store 38. Each social group of user 2 may be associated withcharacteristics, such as a group identifier, group name, keywords, etc.In some examples, a social group may be an association of one or moreusers in a social networking service. A social group may be identifiedby one or more group identifiers, group names, keywords, etc. In someexamples, social group module 34 may create, modify, and delete socialgroups represented as data stored in social group store 38.

Matching module 36 may compare the characteristics of the matchingobject signatures with characteristics of social groups associated withuser 2 to determine a match. For instance, matching module 36 mayperform full and/or partial string matching to compare thecharacteristics associated with an object included in the image with thecharacteristics associated with one or more of the social groupsassociated with user 2. In one example, matching module 36 determines aconfidence value that indicates a degree of similarity between the oneor more characteristics associated with the selected object and one ormore characteristics associated with the social group. The degree ofsimilarity may be within a range of degrees of similarity. If matchingmodule 36 determines the generated confidence value is greater than apredetermined value, matching module 36 may select the social group.

The matching techniques may be further illustrated in reference toFIG. 1. If a recognized object is a tree as shown in FIG. 1, imagerecognition module 32 may associate characteristics such as “Tree” withthe object. Matching module 36 may determine that user 2 has a socialgroup named “Parks.” In the current example, the social group named“Parks” may have characteristics including “trees,” “hiking,” etc. thatare associated with the social group. Matching module 36 may generate aconfidence value by comparing the characteristics associated with therecognized object (e.g., “Tree”) and comparing the characteristics withthe name of social group associated with user 2 (e.g., “Parks”). Theconfidence value may indicate a likelihood that the image, whichincludes the tree object, is associated with the social group named“Parks.” If the confidence value exceeds a predefined value, thenmatching module 36 may select the “Parks” social group as a suggestedsocial group to with which to associate the photo. In some examples, thepredefined value may be set by user 2 or module such as matching module36 may generate the value.

Additional matching techniques may also be used to determine whether asocial group matches an object in an image. For instance, if user 2provides a user input via input device 22, such as tagging the image as“mother” and user 2 has a social group named “Family,” then the “Family”social group will be suggested to user 2 to share the image with.Matching module 36 can use a dictionary or other associative worddatastore to expand the word “Family” to all members of a family, suchas father, sister, brother, children, kids, wife, husband, etc., so thatthere may be more terms to match against for finding suggested socialgroups. Matching module 36 may use word expansions to allow for commonlyassociated or interchangeable words to also be used in the matchingprocess and enables suggested social groups of server device 30, orindications of social groups, to have a wider variety. Matching module36 may also use word expansions to expand identified objects in animage, such as a “tree,” to include people associated with theidentified object, such as a “gardener” who may be associated with the“tree,” as a word expansion technique for finding social groups thatinclude those associated people. Other contextual matching techniquesare further described in the example of FIG. 2.

When matching module 36 completes the matching process, it can generatean indication of a social group selected by matching module 36. Forinstance, matching module 36 can generate a list of selected socialgroups that have characteristics that match characteristics associatedwith objects included in an image. In some examples, matching module 36sends indications all of the social groups associated with user 2 alongwith data that indicate which social groups were selected by matchingmodule 26. Server device 30 can send the indications of the selectedsocial groups to client device 10.

Social network module 14 receives the indications of the selected socialgroups suggested by matching module 36. In response to receiving theindications, social network module 14 may cause output device 24 todisplay graphical user interface (GUI) 26. Initially, GUI 26 may displaythe list of social groups 46A, 46B, 46C. Social groups 46A-46C may besocial groups suggested by matching module 36 because the social groupsincluded characteristics matching the characteristics associated withthe image captured by image capture device 20. GUI 26 may allow user 2to select social group 46B or deselect social 46A. Deselecting socialgroups may result in not sharing the image with the deselected socialgroup. User 2 may also edit the list of social groups listed or declineto associate the image with some or all the social groups 46A, 46B, 46Csuggested by the server device 30.

In some examples, GUI 26 initially displays all social groups in thesocial network of user 2. The suggested social groups appear in adifferent color or may be initially selected within the list. User 2 mayselect or deselect social groups appearing in the list of the socialgroups of user 2. This selection process allows user 2 to controlhis/her social network communications and prevent access to images byother users in the social networking service that are not associatedwith the social group. In another example, GUI 26 may allow user 2 tochoose recipients who are not included among the indicated social groupsand who may not be users of the social network of user 2. In suchexamples, user 2 may manually input an identifier (e.g., email addressor social networking username) of the recipient at the display of GUI26.

In another example, user 2 may also decline to share the image at all byproviding a user input to cancel the display of GUI 26. If,alternatively, the user 2 chooses to share the image with one of theselected social groups suggested by the server device 30, user 2 mayselect one or more social groups. For example, a selection circle 46Bmay be checked by user 2, causing the circle 46B to have a smallercircle within it appear, identifying that the user 2 would like to sharethe image with this social group, called “Friends.” The group “Friends”may include all members of user's 2 social network that user 2 hasassociated with that particular social group.

In some examples, user 2 may select the area where the suggested socialgroups appear, for example by tapping it to provide a user input, andmay activate editing the list of suggested social groups. Tapping thearea of text may bring up a different window or view at GUI 26 whereuser 2 may edit the list of social groups or enter additional non-listedsocial groups and non-listed recipients that user 2 wishes to share theimage with. Once user 2 has selected or keyed in the social groups thatit wishes to share the image with, user 2 may then provide a user inputat input device 22 that causes social network module 14 to sendindications of the selected social groups to server device 30 bypressing, for example, a button labeled “Done.”

In some examples, GUI 26 may prompt user 2 to enter descriptiveinformation about the location of the image, comments, and the list ofsuggested social groups received by the server device 30. For example,if the photo was taken during a family camping trip at Yosemite NationalPark, then user 2 may provide a user input, such as typing in text“Yosemite” or “Family Vacation” at input device 22. Social networkmodule 14 may receive any text that user 2 inputs and associate the textwith the image. The selected social groups are then sent by socialnetwork module 14 of client device 10 to server device 30 via network100. Social group module 34 uses indications of the selected socialgroups from client device 10 to associate the image with indicatedgroups that were selected by the user. Social group module 34 may makeupdates to social group data 42, for example, to associate the imagewith social groups selected by user 2. At a later time, server device 30may determine that another user in the social networking service isassociated with the social group that was previously associated with theimage. Because the user is included in the social group, server device30 may send an indication of the image to a computing device associatedwith the user. For instance, server device 30 may display in a feed thatthe user 2 has posted an image. Alternatively, the user may browse user2's images associated with the social group and view the picture becausethe user is included in the social group with which the image isassociated. Server device 30 may also prevent a user from accessing theimage associated with the social group if the user is not included inthe social group.

In response to receiving selections of social groups from client device10, social group module 34 may improve the matching of images and socialgroups by learning from indications of past user selections. Forinstance, server device 30 may compare the list of suggested socialgroups, which server device 30 initially sent to client device 10, withthe selected social groups that user 2 chose to associate the imagewith. In some examples, social group module 34 may maintain a groupmatching score for each social group suggested by matching module 36.The group matching score may correspond to an association between thesocial group and an object that may be included in an image. Forinstance, a group matching score may correspond to an associationbetween social group “Camping Trip” and an object identifier “tree.”Group matching scores may be used to determine a propensity of user 2 toassociate an image having a specified object with the social group andimprove future suggestions.

In one example, when user 2 chooses to associate a social group that wasinitially suggested to be associated with the image, matching module 36may increment the group matching score that corresponds to the objectand social group. Server device 30 may also determine if a suggestedsocial group was not selected by user 2. For instance, matching module36 determines that a user has deselected a social group that wasinitially suggested by social group module 36, matching module 36 maydecrement group matching score for the association between the object ofthe image and the social group. In some examples, matching scoresassociated with particular social groups can be stored in social groupdata 42 of server device 30. As further described herein, matchingmodule 36 may use the group matching score when social group module 34receives a subsequent image that includes the same object to determinewhether to suggest the social group to the user again.

One or more of the various techniques of FIG. 1 performed by serverdevice 30 may, in some examples, be performed at client device 10. Forexample, the image recognition techniques of image recognition module 32may be performed by client device 10 and identifiers of the objects maybe sent by client device 10 to server device 30 to perform social groupsuggestions. In some examples, client device 10 may also perform thetechniques of the social group module 34 and/or matching module 30.Similarly, in some examples, server device 30 may perform one or moretechniques of social network module 14 and camera module 18. In someexamples, techniques of the disclosure may be extended generally tofiles, which may include photos, videos, or documents.

Techniques of this disclosure for photo sharing with a social groupimproves social networking by automatically suggesting social groups toshare photos with after a photo is taken. Additionally, the disclosureimproves the group suggestions by “learning” over time based on theability of server device 30 to identify objects and indications of pastuser selections. The disclosure of automated social group suggestionsalso improves the control of social networking communication bypreventing access to images by each user in the social networkingservice that is not associated with the social group.

FIG. 2 is a block diagram illustrating further details of one example ofa server device as shown in FIG. 1, in accordance with one or moreaspects of the present disclosure. FIG. 2 illustrates only oneparticular example of server device 30, and many other examples ofserver device 30 may be used in other instances.

As shown in the specific example of FIG. 2, server device 30 includesone or more processors 50, a communication unit 54, one or more storagedevices 56, an input device 60, and an output device 62. Server device30, in one example, further includes applications 68 and operatingsystem 66 that are executable by server device 30. Each of components50, 60, 54, 62, and 56 may be interconnected (physically,communicatively, and/or operatively) for inter-component communications.In some examples, communication channels 63 may include a system bus,network connection, interprocess communication data structure, or anyother channel for communicating data. As one example in FIG. 2,components 50, 60, 54, 62, and 56 may be coupled by one or morecommunication channels 63. Applications 68 (includes modules 32, 34, 36,and 37) and operating system 66 may also communicate information withone another as well as with other components in server device 30.

Processors 50, in one example, are configured to implement functionalityand/or process instructions for execution within server device 30. Forexample, processors 50 may be capable of processing instructions storedin storage devices 56.

One or more storage devices 56 may be configured to store informationwithin server device 30 during operation. Storage device 56, in someexamples, is described as a computer-readable storage medium. In someexamples, storage device 56 is a temporary memory, meaning that aprimary purpose of storage device 56 is not long-term storage. Storagedevice 56 in some examples, is described as a volatile memory, meaningthat storage device 56 does not maintain stored contents when thecomputer is turned off. Examples of volatile memories include randomaccess memories (RAM), dynamic random access memories (DRAM), staticrandom access memories (SRAM), and other forms of volatile memoriesknown in the art. In some examples, storage device 56 is used to storeprogram instructions for execution by processors 50. Storage device 56,in one example, is used by software or applications running on serverdevice 30 (e.g., applications 68) to temporarily store informationduring program execution.

Storage devices 56, in some examples, also include one or morecomputer-readable storage media. Storage devices 56 may be configured tostore larger amounts of information than volatile memory. Storagedevices 56 may further be configured for long-term storage ofinformation. In some examples, storage devices 56 include non-volatilestorage elements. Examples of such non-volatile storage elements includemagnetic hard discs, optical discs, floppy discs, flash memories, orforms of electrically programmable memories (EPROM) or electricallyerasable and programmable (EEPROM) memories.

Server device 30, in some examples, also includes one or morecommunication units 54. Server device 30, in one example, utilizescommunication unit 54 to communicate with external devices via one ormore networks, such as one or more wireless networks. Communication unit54 may be a network interface card, such as an Ethernet card, an opticaltransceiver, a radio frequency transceiver, or any other type of devicethat can send and receive information. Other examples of such networkinterfaces may include Bluetooth, 3G and WiFi radios computing devicesas well as USB. In some examples, server device 30 utilizescommunication unit 54 to wirelessly communicate with an external devicesuch as client device 10 of FIG. 1, or any other computing device.

Server device 30, in one example, also includes one or more inputdevices 60. Input device 60, in some examples, is configured to receiveinput from a user through tactile, audio, or video feedback. Examples ofinput device 60 include a presence-sensitive screen, a mouse, akeyboard, a voice responsive system, video camera, microphone or anyother type of device for detecting a command from a user. In someexamples, a presence-sensitive screen includes a touch-sensitive screen.

One or more output devices 62 may also be included in server device 30.Output device 62, in some examples, is configured to provide output to auser using tactile, audio, or video stimuli. Output device 62, in oneexample, includes a presence-sensitive screen, a sound card, a videographics adapter card, or any other type of device for converting asignal into an appropriate form understandable to humans or machines.Additional examples of output device 62 include a speaker, a cathode raytube (CRT) monitor, a liquid crystal display (LCD), or any other type ofdevice that can generate intelligible output to a user.

Server device 30 may include operating system 66. Operating system 66,in some examples, controls the operation of components of server device30. For example, operating system 66, in one example, facilitates theinteraction of applications 68 with processors 50, communication unit54, storage device 56, input device 60, and output device 62. As shownin FIG. 2, applications 68 may include image recognition module 32,social group module 34, matching module 36, server module 37, and clientdevice 10 as described in FIG. 1. Applications 68 may each includeprogram instructions and/or data that are executable by server device30. As one example, social group module 34 may include instructions thatcause server device 30 to perform one or more of the operations andactions described in the present disclosure.

In accordance with aspects of the present disclosure, communication unit54 may receive a request from client device 10 for generating suggestedsocial groups for photo sharing. The request may include an image fromclient device 10, which may be further associated with a user. The usermay be associated with a social networking service, such that the userhas an account in the social networking service. Image recognitionmodule 32 of server device 30 may identify an object in the image. Forexample, image recognition module 32, as shown in FIG. 2, may generate aconfidence value indicating the probability that the portion of selectedimage data matches the object associated with the object signature. Theconfidence value indicates a degree of similarity between the one ormore characteristics associated with the selected object and one or morecharacteristics associated with the social group, wherein the degree ofsimilarity is within a range of degrees of similarity. The probability,or confidence score, may be compared to a predetermined value todetermine if the probability is greater than the predetermined value.When the probability is greater than a predefined value, imagerecognition module 32 selects the object associated with the objectsignature. Image recognition module 32 then sends the selected objectsto matching module 36 for continuing the selection of social groupsuggestions.

Social group module 34 then initiates matching of the image thatincludes to the object to the user's social groups by accessing a listof social groups that are associated with the user. The list of socialgroups may be included in social group data 42 and stored in the socialgroup store 38. Matching module 36 matches characteristics of the socialgroups with characteristics associated with the object included in theimage. Matching module 36 may match such characteristics based at leastin part using matching techniques as described in FIG. 1. For example,matching module 36 may determine the confidence value by determining thedegree of similarity between a characteristic associated with the objectand a characteristic associated with a social group. In some examples,matching module 36 may use a contextual characteristic that iscontextually related to a characteristic associated with the socialgroup. A semantic relationship may exist between the contextualcharacteristic and the characteristic associated with the social group.An example of a semantic relationship between the contextualcharacteristic and characteristics of the associated social group is asdescribed in FIG. 1, when the recognized object is a soccer ball, imagerecognition module 32 may associate characteristics such as “soccer” and“ball” with the object. Matching module 36 may determine that user 2 hasa social group named “Soccer Fans.”

Server device 30 may select a list of social groups to send to clientdevice 10 that match objects included in the image. Communication unit54 may then send to client device 10 indications of the social group(s)selected by server device 30. For example, communication unit 54 maysend a list of the suggested social groups that are associated withcharacteristics that match characteristics of one or more objects in theimage.

In another example, client device 10 of FIG. 1 may include an audioapplication for capturing audio. In some examples, client 10 may storeone or more audio files. In one example, client 10 may generate an audiofile based on sounds received by an audio input device, such as amicrophone (e.g., input device 60). Server device 30 of FIG. 2 mayreceive the audio file from client device 10. An audio recognitionmodule 39 of server device 30 may perform object recognition techniquesas described in this disclosure to identify words in audio data of theaudio file. Audio recognition module 39 may generate a confidence valueusing confidence value scoring techniques as described in thisdisclosure for indicating a degree of similarity between the one or morecharacteristics associated with the selected audio data and/oridentified word, and one or more characteristics associated with thesocial group. When the confidence value is greater than a predefinedvalue, audio recognition module 32 selects the object associated withthe object signature. Audio recognition module 32 then sends theselected objects to matching module 36 for continuing the selection ofsocial group suggestions.

FIG. 3 is a flow diagram illustrating example operations of that aserver device may perform when suggesting social groups for an imagereceived by client device, in accordance with one or more aspects ofthis disclosure. For purposes of illustration only, the exampleoperations are described below within the context of server device 30and client device 10 as shown in FIG. 1.

Initially, an image is received by server device 30 from client device10 (70). Server device 30 may then perform the image recognitiontechniques of the disclosure to identify objects in the image (72). Insome examples, client device 10 may further send information associatedwith the image, such as a number that uniquely identifies the image, thelocation where the image was captured using global positioningtechniques, user defined tags, or any other data that is descriptive ofthe captured image. Server device 30 may subsequently determinecharacteristics associated with an object of the image (74).

Server device 30 may then compare the characteristics associated withthe object to characteristics of social groups associated with the user(76). Social group data 42, as shown in FIG. 2, may include identifiersof social groups that are mapped to characteristics associated with thesocial groups. In some examples, each user account of the socialnetworking service may be associated with one or more social groups thatare included within the social network of user 2. For example, thecharacteristic “Soccer team” may be associated with a social groupincluded in user 2's social network. The mapping between the socialgroup and the characteristic “Soccer team” may be included in socialgroup data 42.

Server device 30 may use full and/or partial string matching techniquesdetermine matches between characteristics associated with the objectsand characteristics associated with the social groups within the socialnetwork of user 2. To illustrate, if the recognized object is a soccerball, characteristics such as “soccer” and “ball” may be associated withthe object. Matching module 36 may determine that user 2 has a socialgroup named “Soccer Fans.” Consequently, matching module 36 may generatea confidence value by comparing the characteristics associated with therecognized object and comparing the characteristics against the name ofsocial group, “Soccer Fans,” associated with user 2 (78). The confidencevalue may indicate a likelihood or probability that the image, whichincludes the soccer ball object, is associated with the social groupnamed “Soccer Fans.”

Server device 30 may compare the confidence value (e.g., the probabilityof a match) to a predefined value to determine if the confidence valueis greater than or equal to the predetermined value (80). When theprobability of a match is greater than or equal to a predefined value,image recognition module 32 selects the corresponding social group(e.g., the social group having the characteristic that matches thecharacteristic associated with the object in the image) (84). If theprobability is less than the predetermined value, image recognitionmodule 32 can refrain from selecting the social groups and thereforerefrain from suggesting that the image be associated with the socialgroup (82). Image recognition module 32 then sends indications of theselected social groups to client device 10 (86).

FIG. 4 is a flow diagram illustrating example operations that a serverdevice may perform to improve social group suggestions based on learningthe social group selections of a user, in accordance with one or moreaspects of this disclosure. For purposes of illustration only, theexample operations are described below within the context of serverdevice 30 and client device 10 as shown in FIG. 1.

In some examples, server device 30 maintains a group matching score foreach social group suggested by matching module 36. The group matchingscore may correspond to an association between the social group and anobject of an image. For instance, a group matching score may correspondto an association between a social group “Parks” and an objectidentifier “tree” that may correspond to a tree in an image. Groupmatching scores may be used, in accordance with techniques of thedisclosure, to determine a propensity of user 2 to associate an imagehaving a specified object with the social group.

In one example, server device 30 may initially send a list of suggestedsocial groups that user 2 may associate with an image previouslyuploaded by client device 10. Server device 30 may determine whether agroup matching score exists for each suggested social group. If a groupmatching score does not exist between a suggested social group and anobject included in the image, server device 30 may generate acorresponding group matching score. In some examples, a group matchingscore may be a value in a range between 0-1. In some examples, a groupmatching score may be initialized to a value of 0.5.

Once client device 10 has received the suggested social groups, user 2may provide one or more selections to client device 10 to indicate whichsocial groups will be associated with the image. After user 2 selectssocial groups, client device 10 may send indications of the selectedsocial groups to server device 30. Social network module of clientdevice 10 may send the selected social groups via network 100 to serverdevice 30.

Server device 30 may then receive the indications of the selected socialgroups (90). Once received, server device 30 compares the indications ofthe social groups selected by user 2 with the social groups that wereinitially suggested by server device 30 (92). By comparing theindications, social group module 34 can determine if a selection of asocial group made by a user matches a social group that was initiallydetermined by server device 30.

In one example, the social group selected by the user to associate withthe image matches a social group suggested by server device 30.Consequently, server device 30 may update the group matching scoreassociated with the suggested social group to indicate that user 2'sselection matches the suggested social group (94). In such examples,server module 30 may increment the group matching score associated withthe selected social group (94). In another example, server device 30 mayset the group matching score to a predetermined value, such as 0.75 as ahigh score value. By incrementing or setting the group matching score toa high score value, server module 30 indicates that a match existsbetween the suggested social group and the selection of the social groupby the user. In this way, server device 30 may later use the groupmatching score to improve suggestions of social groups to user 2.

In some examples, a social group initially suggested by server device 30may have been deselected by the user. Consequently, server device 30 mayupdate the group matching score associated with the suggested socialgroup to indicate the suggested social group was deselected by the user(96). In some examples, server device 30 may decrement the groupmatching score associated with the suggested social group. In anotherexample, server device 30 may set the group matching score to apredetermined value, such as 0.1. By decrementing or setting the groupmatching score to a low score value, server module 30 indicates that theuser changed his/her selection to deselect the suggested social group.In this way, server device 30 may later use the group matching score toimprove suggestions of social groups to user 2.

To illustrate the use of group matching scores to improve suggestions ofsocial groups, server device 30 may receive another image from clientdevice 10 that includes the same object as the image previouslydescribed in the example of FIG. 4. Server device 30 may initiallydetermine one or more suggested social groups that could be associatedwith the image. Prior to sending indications of the suggested socialgroups to client device 10, server device 30 may further determinewhether one or more of the suggested social groups are associated withgroup matching scores that are less than a predetermined value. Forinstance, if a predetermined value is 0.5 and a group matching score fora suggested social group was previously decremented to 0.3, serverdevice 30 may determine that it will not suggest this particular socialgroup (e.g., server device 30 will not send an indication of this socialgroup to client device 10). Because a group matching score correspondsto an association between a social group and an object that may beidentified in an image, server device 30 refrains from suggesting thesocial group, in the current example, when an image includes the objectidentified in the group matching score.

In some examples, server device 30 may implement techniques to reducethe effects of inadvertent and/or isolated user selections in thelearning techniques described herein. For instance, server device 30 mayrefrain from decrementing or setting a group matching score the firsttime that user 2 has deselected a suggested social group. In oneexample, server device 30 may receive an indication that user 2 hasdeselected a social group that was initially selected. Rather thandecrementing the group matching score, server device 30 may firstdetermine whether the group matching score has been previouslydecremented in response to a user's decision to deselect a social group.If the scoring value has not been decremented at least one time,matching module 36 may refrain from decrementing the confidence score,to prevent prematurely decrementing the group matching score when, forexample, user 2 mistakenly deselected the suggested social group. Aninternal counter may be used to track the number of times that asuggested social group was not selected. Internal counters may beimplemented using hardware or a combination of hardware and software.For example, if the internal counter may be set to a predeterminednumber of occurrences, for example 3, then user 2 may choose not toselect an image with a soccer ball in the image with the social group“Soccer Team” 3 times without decrementing the group matching score. Thefourth subsequent occurrence that user 2 does not chose “Soccer Team”will decrement the group matching score. Matching module 36 then updatesthe group mapping score after the fourth occurrence.

FIG. 5 is a flow diagram illustrating example operations that a serverdevice may perform to improve social group suggestions based on learningthe social group selections of a user, in accordance with one or moreaspects of this disclosure. For purposes of illustration only, theexample operations are described below within the context of serverdevice 30 and client device 10 as shown in FIG. 1.

In one example, server device 30 receives an image from client device 10(110). User 2 may be associated with a social networking service andclient device 10. Server device 30 may, upon receiving the image,perform image recognition techniques to identify an object included inthe image. Server device 30 may compare characteristics associated withthe object to characteristics of social groups associated with user 2 inthe social networking service to select determine a social group thatmay be associated with the image that includes the object (114). Serverdevice 30 may then send an indication of the selected social group toclient device 10 (116), so that user 2 may view the generatedsuggestions and select from social groups within the social networkingservice to share the image with.

In one example, the method includes receiving, by a first computingdevice and from a second computing device, an image, wherein a user isassociated with a social networking service and the second computingdevice; identifying, by the first computing device, an object includedin the image; selecting, by the first computing device, a social groupassociated with the user in the social networking service, the selectingbeing based at least in part on one or more characteristics associatedwith the object; and sending, by the first computing device to thesecond computing device, an indication of the social group selected bythe first computing device. In another example, the indication comprisesa list of social groups associated with the user in the socialnetworking service. In another example, wherein the image is at leastone of a photo, video, or document.

In one example, identifying the object included in the image furthercomprises: determining, by the first computing device, a portion ofimage data from the image; determining, by the first computing device,an image signature that represents the portion of selected image data;determining, by the first computing device, a confidence value thatindicates a likelihood that the image signature matches an objectsignature associated with the object; when the confidence value isgreater than a predetermined value, selecting, by the first computingdevice, the object associated with the object signature.

In another example, selecting the social group associated with the userin the social networking service further comprises: determining, by thefirst computing device, a confidence value that indicates a degree ofsimilarity between the one or more characteristics associated with theselected object and one or more characteristics associated with thesocial group, wherein the degree of similarity is within a range ofdegrees of similarity; when the confidence value is greater than apredetermined value, selecting, by the first computing device, thesocial group.

In one example, the method includes determining the confidence valuethat indicates the degree of similarity between the one or morecharacteristics associated with the selected object and one or morecharacteristics associated with the social group, further comprises:determining, by the first computing device, a confidence value thatindicates a degree of similarity between at least one characteristic ofthe one or more characteristics associated with the selected object anda contextual characteristic that is contextually related to the at leastone characteristic of the one or more characteristics associated withthe social group, wherein a semantic relationship exists between thecontextual characteristic and the at least one characteristic of the oneor more characteristics associated with the social group; and when theconfidence value is greater than a predetermined value, selecting, bythe first computing device, the social group.

In another example, the method includes sending, by the first computingdevice, the indication of the social group for display at the secondcomputing device to enable the user associated with the second computingdevice to associate the image with the social group. In one example, themethod further includes sending, by the first computing device,indications of all social groups associated with the user in the socialnetworking service for display at the second computing device, whereinthe social group selected by the first computing device is indicated asa selected social group within the indications of all social groups.

In another example, receiving, by the first computing device and fromthe second computing device, descriptive information associated with theimage, wherein the descriptive information describes the image; andassociating, by the first computing device, the descriptive informationwith the image in the social networking service. In another example, themethod further includes associating, by the first computing device, atleast a portion of the descriptive information with the object, suchthat the portion of the descriptive information is a characteristicassociated with the object.

In one example, the method includes, receiving, by the first computingdevice and from the second computing device, an indication to associatethe image with a selected social group that has been selected by a userassociated with the second computing device; and associating, by thefirst computing device, the image with the selected social group in thesocial networking service.

In another example, wherein the user that is associated with the secondcomputing device is a first user, the method further includes storing,by the first computing device, the image; determining, by the firstcomputing device, a second user in the social networking service isassociated with the social group selected by the first user; andsending, by the first computing device, an indication of the image to acomputing device associated with the second user. In another example,the method further includes preventing access, by the first computingdevice, to the image by each user in the social networking service thatis not associated with the social group.

In one example, the method further includes, in response to receivingthe indication to associate the image with the selected social group,determining, by the first computing device, whether a match existsbetween the social group selected by the first computing device and theselected social group received from the second computing device. Whenthe match exists, incrementing, by the first computing device, amatching score that is associated with an association between the socialgroup selected by the first computing device and the object identifiedby the first computing device.

In another example, when the match does not exist, decrementing, by thefirst computing device the matching score that is associated with theassociation between the social group selected by the first computingdevice and the object identified by the first computing device. In oneexample, wherein decrementing the matching score further includes whenthe match does not exist, decrementing, by the first computing device, asecondary score associated with the matching score. When the secondaryscore is less than a predetermined value, decrementing, by the firstcomputing device, the matching score. When the secondary score is notless than the predetermined value, not decrementing, by the firstcomputing device, the matching score.

In another example the method further includes receiving, by the firstcomputing device, a second image from the second computing device,wherein the user is associated with the second computing device and thesocial networking service. The method may further include identifying,by the first computing device, an object included in the second image;selecting, by the first computing device, a social group associated withthe user in the social networking service, the selecting being based atleast in part on one or more characteristics associated with the object.The method may further include determining, by the first computingdevice, whether a matching score associated with the object and thesocial group selected by the first computing device is greater than apredetermined value. When the matching score is greater than thepredetermined value, sending, by the first computing device to thesecond computing device, an indication of the social group selected bythe first computing device. In one example, when the matching score isnot greater than the predetermined value, refraining from sending, bythe first computing device to the second computing device, theindication of the social group selected by the first computing device.

The techniques described in this disclosure may be implemented, at leastin part, in hardware, software, firmware, or any combination thereof.For example, various aspects of the described techniques may beimplemented within one or more processors, including one or moremicroprocessors, digital signal processors (DSPs), application specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs), orany other equivalent integrated or discrete logic circuitry, as well asany combinations of such components. The term “processor” or “processingcircuitry” may generally refer to any of the foregoing logic circuitry,alone or in combination with other logic circuitry, or any otherequivalent circuitry. A control unit including hardware may also performone or more of the techniques of this disclosure.

Such hardware, software, and firmware may be implemented within the samedevice or within separate devices to support the various techniquesdescribed in this disclosure. In addition, any of the described units,modules or components may be implemented together or separately asdiscrete but interoperable logic devices. Depiction of differentfeatures as modules or units is intended to highlight differentfunctional aspects and does not necessarily imply that such modules orunits must be realized by separate hardware, firmware, or softwarecomponents. Rather, functionality associated with one or more modules orunits may be performed by separate hardware, firmware, or softwarecomponents, or integrated within common or separate hardware, firmware,or software components.

The techniques described in this disclosure may also be embodied orencoded in an article of manufacture including a computer-readablestorage medium encoded with instructions. Instructions embedded orencoded in an article of manufacture including a computer-readablestorage medium encoded, may cause one or more programmable processors,or other processors, to implement one or more of the techniquesdescribed herein, such as when instructions included or encoded in thecomputer-readable storage medium are executed by the one or moreprocessors. Computer readable storage media may include random accessmemory (RAM), read only memory (ROM), programmable read only memory(PROM), erasable programmable read only memory (EPROM), electronicallyerasable programmable read only memory (EEPROM), flash memory, a harddisk, a compact disc ROM (CD-ROM), a floppy disk, a cassette, magneticmedia, optical media, or other computer readable media. In someexamples, an article of manufacture may include one or morecomputer-readable storage media.

In some examples, a computer-readable storage medium may include anon-transitory medium. The term “non-transitory” may indicate that thestorage medium is not embodied in a carrier wave or a propagated signal.In certain examples, a non-transitory storage medium may store data thatcan, over time, change (e.g., in RAM or cache). Various embodiments havebeen described. These and other embodiments are within the scope of thefollowing claims.

What is claimed is:
 1. A method comprising: receiving, by a firstcomputing device and from a second computing device, an image, wherein auser is associated with a social networking service and the secondcomputing device; recognizing, by the first computing device, an objectincluded in the image by at least: determining, by the first computingdevice, a portion of image data from the image; determining, by thefirst computing device, an image signature that represents the portionof selected image data; determining, by the first computing device, afirst confidence value that indicates a likelihood that the imagesignature matches an object signature associated with the object; and inresponse to determining that the first confidence value is greater thana first predetermined value, selecting, by the first computing device,the object associated with the object signature; identifying, by thefirst computing device, one or more characteristics of the object;determining, by the first computing device, a second confidence valuethat indicates a degree of similarity between at least onecharacteristic of the one or more characteristics of the object and acontextual characteristic that is contextually related to at least onecharacteristic associated with a social group associated with the userand the social networking service, wherein a semantic relationshipexists between the contextual characteristic and the at least onecharacteristic associated with the social group; in response todetermining that the second confidence value is greater than a secondpredetermined value, selecting, by the first computing device, thesocial group; and sending, by the first computing device, to the secondcomputing device, an indication of the social group.
 2. The method ofclaim 1, wherein the indication comprises a list of social groupsassociated with the user in the social networking service.
 3. The methodof claim 1, wherein sending the indication of the social group furthercomprises: sending, by the first computing device, the indication of thesocial group for display at the second computing device to enable theuser to associate the image with the social group.
 4. The method ofclaim 1, wherein sending the indication of the social group furthercomprises: sending, by the first computing device, indications of allsocial groups associated with the user in the social networking servicefor display at the second computing device, wherein the social groupselected by the first computing device is indicated as a selected socialgroup within the indications of all social groups.
 5. The method ofclaim 1, further comprising: receiving, by the first computing deviceand from the second computing device, descriptive information associatedwith the image, wherein the descriptive information describes the image;and associating, by the first computing device, the descriptiveinformation with the image in the social networking service.
 6. Themethod of claim 5, further comprising: associating, by the firstcomputing device, at least a portion of the descriptive information withthe object, such that the portion of the descriptive information is acharacteristic of the object.
 7. The method of claim 1, furthercomprising: receiving, by the first computing device and from the secondcomputing device, an indication to associate the image with a selectedsocial group that has been selected by the user; and associating, by thefirst computing device, the image with the selected social group in thesocial networking service.
 8. The method of claim 7, wherein the user isa first user, the method further comprising: storing, by the firstcomputing device, the image; determining, by the first computing device,that a second user in the social networking service is associated withthe social group selected by the first user; and sending, by the firstcomputing device, an indication of the image to a computing deviceassociated with the second user.
 9. The method of claim 7, furthercomprising: preventing access, by the first computing device, to theimage by each user in the social networking service that is notassociated with the social group.
 10. The method of claim 7, furthercomprising: in response to receiving the indication to associate theimage with the selected social group, determining, by the firstcomputing device, whether a match exists between the social groupselected by the first computing device and the selected social groupreceived from the second computing device; in response to determiningthat the match exists, incrementing, by the first computing device, amatching score that is associated with an association between the socialgroup selected by the first computing device and the object.
 11. Themethod of claim 10, further comprising: in response to determining thatthe match does not exist, decrementing, by the first computing device,the matching score that is associated with the association between thesocial group selected by the first computing device and the object. 12.The method of claim 11, wherein decrementing the matching score furthercomprises: in response to determining that the match does not exist,decrementing, by the first computing device, a secondary scoreassociated with the matching score; in response to determining that thesecondary score is less than a predetermined value, decrementing, by thefirst computing device, the matching score; and in response todetermining that the secondary score is not less than the predeterminedvalue, not decrementing, by the first computing device, the matchingscore.
 13. The method of claim 1, further comprising: receiving, by thefirst computing device, a second image from the second computing device;recognizing, by the first computing device, an object included in thesecond image; identifying, by the first computing device, one or morecharacteristics of the object included in the second image; selecting,by the first computing device, a social group associated with the userin the social networking service, the selecting being based at least inpart on the one or more characteristics of the object included in thesecond image; determining, by the first computing device, whether amatching score associated with the object included in the second imageand the social group selected by the first computing device is greaterthan a predetermined value; and in response to determining that thematching score is greater than the predetermined value, sending, by thefirst computing device to the second computing device, an indication ofthe social group selected by the first computing device.
 14. The methodof claim 13, further comprising: in response to determining that thematching score is not greater than the predetermined value, refrainingfrom sending, by the first computing device to the second computingdevice, the indication of the social group selected by the firstcomputing device.
 15. The method of claim 1, wherein the image comprisesat least one of a visual image and an audio image.
 16. The method ofclaim 15, wherein the visual image is at least one of a photo, video, ordocument.
 17. A computer-readable storage device encoded withinstructions that, when executed, cause one or more processors of afirst computing device to perform operations comprising: receiving, bythe first computing device and from a second computing device, an image,wherein a user is associated with the second computing device;recognizing, by the first computing device, an object associated withthe image by at least: determining a portion of image data from theimage; determining an image signature that represents the portion ofselected image data; determining a first confidence value that indicatesa likelihood that the image signature matches an object signatureassociated with the object; and in response to determining that thefirst confidence value is greater than a predetermined value, selectingthe object associated with the object signature; identifying, by thefirst computing device, one or more characteristics of the object;determining a second confidence value that indicates a degree ofsimilarity between at least one characteristic of the one or morecharacteristics of the object and a contextual characteristic that iscontextually related to at least one characteristic associated with asocial group associated with the user and a social networking service,wherein a semantic relationship exists between the contextualcharacteristic and the at least one characteristic associated with thesocial group; and in response to determining that the second confidencevalue is greater than a second predetermined value, selecting the socialgroup; and sending, by the first computing device, to the secondcomputing device, an indication of the social group.
 18. Thecomputer-readable storage device of claim 17, further encoded withinstructions that, when executed, cause one or more processors of thefirst computing device to perform operations comprising: sending theindication of the social group for display at the second computingdevice to enable the user to associate the image with the social group.19. The computer-readable storage device of claim 17, further encodedwith instructions that, when executed, cause one or more processors ofthe first computing device to perform operations comprising: receiving,from the second computing device, an indication to associate the imagewith a selected social group that has been selected by a user associatedwith the second computing device; and associating, by the firstcomputing device, the image with the selected social group in the socialnetworking service.
 20. The computer-readable storage device of claim19, further encoded with instructions that, when executed, cause one ormore processors of the first computing device to perform operationscomprising: in response to receiving the indication to associate theimage with the selected social group, determining, whether a matchexists between the social group selected by the first computing deviceand the selected social group received from the second computing device;in response to determining that the match exists, incrementing, by thefirst computing device, a matching score that is associated with anassociation between the social group selected by the first computingdevice and the object recognized by the first computing device.
 21. Thecomputer-readable storage device of claim 19, further encoded withinstructions that, when executed, cause one or more processors of thefirst computing device to perform operations comprising: in response todetermining that the match does not exist, decrementing, by the firstcomputing device the matching score that is associated with theassociation between the social group selected by the first computingdevice and the object identified by the first computing device.
 22. Thecomputer-readable storage device of claim 19, further encoded withinstructions that, when executed, cause one or more processors of thefirst computing device to perform operations comprising: in response todetermining that the match does not exist, decrementing, by the firstcomputing device, a secondary score associated with the matching score;in response to determining that the secondary score is less than apredetermined value, decrementing, by the first computing device, thematching score; and in response to determining that the secondary scoreis not less than the predetermined value, not decrementing, by the firstcomputing device, the matching score.
 23. A computing device,comprising: one or more processors; one or more modules operable by theone or more processors to: receive, from a remote computing device, animage, wherein a user is associated with a social networking service andthe second computing device; recognize an object included in the imageby at least: determine a portion of image data from the image; determinean image signature that represents the portion of selected image data;determine a first confidence value that indicates a likelihood that theimage signature matches an object signature associated with the object;and in response to determining that the first confidence value isgreater than a first predetermined value, selecting the objectassociated with the object signature; identify one or morecharacteristics of the object; determine a second confidence value thatindicates a degree of similarity between at least one characteristic ofthe one or more characteristics of the object and a contextualcharacteristic that is contextually related to at least onecharacteristic associated with a social group associated with the userand the social networking service, wherein a semantic relationshipexists between the contextual characteristic and the at least onecharacteristic associated with the social group; select a social groupassociated with the user and the social networking service, theselecting being based at least in part on the one or morecharacteristics in response to determining that the second confidencevalue is greater than a second predetermined value, selecting, by thefirst computing device, the social group; and send, to the remotecomputing device, an indication of the social group.
 24. The computingdevice of claim 23, wherein the one or more modules operable by the oneor more processors to send, to the remote computing device, anindication of the social group are operable by the one or moreprocessors to send, to the remote computing device, the indication ofthe social group for display at the remote computing device to enablethe user to associate the image with the social group.
 25. The computingdevice of claim 23, wherein the one or more modules operable by the oneor more processors to send, to the remote computing device, anindication of the social group are operable by the one or moreprocessors to send, to the remote computing device, indications of allsocial groups associated with the user in the social networking servicefor display at the remote computing device, wherein the social groupselected by the one or more processors is indicated as a selected socialgroup within the indications of all social groups.
 26. The computingdevice of claim 23, wherein the one or more modules are further operableby the one or more processors to: receive, from the remote computingdevice, descriptive information associated with the image, wherein thedescriptive information describes the image; and associate thedescriptive information with the image in the social networking service.27. The computing device of claim 23, wherein the one or more modulesare further operable by the one or more processors to: receive, from theremote computing device, an indication to associate the image with aselected social group that has been selected by the user; and associatethe image with the selected social group in the social networkingservice.
 28. The computing device of claim 27, wherein the one or moremodules are further operable by the one or more processors to: inresponse to receiving the indication to associate the image with theselected social group, determine whether a match exists between thesocial group selected by the one or more processors and the selectedsocial group received from the remote computing device; and in responseto determining that the match exists, increment a matching score that isassociated with an association between the social group selected by theone or more processors and the object.
 29. The computing device of claim28, wherein the one or more modules are further operable by the one ormore processors to: in response to determining that the match does notexist, decrement the matching score that is associated with theassociation between the social group selected by the one or moreprocessors and the object.